Information technology continues to evolve as new forms of mass communications reach out to a broader and increasingly diverse audience. Recently, the Web, shorthand for “Worldwide Web,” has introduced yet another form of mass communications based on the concept of a multimedia Web “site.” A Web site is actually a collection of individually downloadable Web pages, generally with a common theme and structure, with embedded hyperlinks connecting the Web pages to other related Web pages and content.
Web sites are authored by individual users and organizations, known as content providers, and are published for retrieval on host computer systems. Web site publishing is primarily computer network-based and requires a three-part support infrastructure. First, individual users execute browser applications for viewing Web pages on client computer systems. Second, content providers execute server applications on host computer systems. Finally, the host computer systems must be interconnected to each client computer system via a data network or similar form of interconnectivity. The data network can include intranetworks, also known as local area networks, and wide area networks, including public information internetworks, such as the Internet, and various combinations thereof.
Web pages can consist of plain or formatted text, images, sound or video clips, and other types of content. Each Web page is actually transmitted as an Hypertext Markup Language (HTML) script. HTML is a tag-delimited, page description programming language. Tags specify page layout and formatting instructions. The Web pages are downloaded and interpreted by a Web browser application.
Most Web pages written in HTML are static with relatively unchanging content. HTML Web pages are self-contained scripts. Changing the content requires recoding the Web page prior to download. Recoding, though, imposes a maintenance burden on content providers who want to make periodic content changes to their Web sites.
Nonetheless, many Web pages need to be regularly updated to reflect changing conditions, such as stock prices, news, database updates, and countless other types of information. Moreover, Web pages personalized for individual users encourage repeat visits to the Web site. Consequently, dynamic Web pages have become increasingly popular.
In the prior art, there are four categories of commonly used approaches for providing dynamic Web page content.
A first approach generates Web pages by embedding HTML directly into the source code. A compiled or interpreted program is written in a high order programming or scripting language, such as Java, PL/SQL, Perl, or C, to generate Web pages at runtime. These programs are invoked by a variety of methods and frameworks such as Servlets (Java), CGI (Perl and C), and COM Objects (C). The logic controlling the creation of dynamic content is embodied within the program. However, as with static Web pages, restructuring the generated Web pages in terms of appearance and changes in content type requires recoding the underlying program. The look and feel of the resultant Web pages are potentially spread across several procedures. Moreover, thusly encoded Web pages cannot be easily visualized, as the HTML scripts are only generated at runtime and cannot be edited using conventional Web publishing tools.
A second approach employs the reverse technique. Source code written in a higher order programming or scripting language is placed into Web page HTML code and is interpreted at runtime. Examples of this approach include ColdFusion, ASP (Active Server Pages) and JSP (Java Server Pages). Source code segments are placed directly into the HTML code. Tags or similar delimiters separate the source code segments from the page script. At runtime, a server executes the source code to generate a complete Web page. However, the source code is intrusive and can make using conventional Web editing tools difficult. The look and feel of a Web site can also be spread across several pages, imposing a maintenance burden. Finally, the application logic and user interface are not cleanly separated. Consequently, programmers and Web page artists find simultaneously working on the same page difficult.
A third approach requires the use of design-by-specification tools. These types of tools generate code or perform runtime interpretation of the specifications. Nevertheless, these types of tools are ill suited for creating commercial Web sites as the page layouts are generally inflexible and the HTML code most often cannot be directly manipulated by a page artist. Moreover, this approach is generally optimized for database transactions and therefore inappropriate for many types of Web sites.
Finally, a fourth category of approaches involves complex, proprietary or unproven technologies that are generally beyond the capabilities of most page artists and programmers working in corporate information technology departments. These technologies typically do not allow page artists to design Web page look and feel using conventional HTML editing tools, nor do these technologies provide adequate facilities to enable concurrent development. Moreover, the programming models are typically complex such that simple tasks, such as iteration and defining optional display regions, are difficult to accomplish.
Consequently, there is a need for an integrated solution to providing dynamic Web pages that cleanly separates the tasks of user interface design from application logic programming. Such a solution would allow for the complete separation of HTML code from program logic code while simultaneously providing for the generation of complex Web page designs. Such a solution would also allow page designers to work concurrently with application programmers on the same Web page.
There is a further need for a dynamic Web page generation approach that allows page artists to design and visualize Web pages using conventional HTML code editing tools. Such a solution would take advantage of the structure inherent in HTML documents to describe the various displayable regions in a simple and unobtrusive manner.